Aller au contenu

Contrôleur de gestion de mémoire (Nintendo)

Un article de Wikipédia, l'encyclopédie libre.
La Nintendo Entertainment System est améliorée par des puces MMC dans des cartouches.

Les contrôleurs multi-mémoire ou contrôleurs de gestion de mémoire[1] ( MMC ) sont des puces spéciales conçues par divers développeurs de jeux vidéo (notamment Nintendo) pour être utilisées dans les cartouches Nintendo Entertainment System (NES). Elles élargissent le champ des possibles de la console et permettent de créer des jeux NES que la console seule n'était pas en capacité d'exécuter. Le matériel de base de la NES ne prend en charge que 40 Ko de ROM au total, jusqu'à 32 Ko de PRG et 8 Ko de CHR, donc une seule tuile et une seule table de sprites sont possibles. Cette limite a été rapidement atteinte au cours des deux premières années de commercialisation de la Famicom et les développeurs de jeux ont commencé à demander un moyen d'étendre les capacités de la console. Cette capacité d'évolution fut un des grands arguments de Nintendo quant au support cartouche jusqu'à la Nintendo 64 qui fut la dernière à en tirer partie.

Dans les communautés d'émulation et de Homebrew, ces puces sont également connues sous le nom de mappeurs[2].

Liste des puces MMC[modifier | modifier le code]

CNROM[modifier | modifier le code]

CNROM est la toute première puce introduite sur la Famicom début 1986, avant même son arrivée en Europe. Il se compose d'une seule puce de la série 7400. CNROM prend en charge une seule banque PRG fixe et jusqu'à huit banques CHR pour une ROM totale de 96 Ko. Certaines variantes tierces prenaient en charge des fonctionnalités supplémentaires. De nombreux jeux CNROM stockent les données de niveau du jeu dans la ROM CHR, effaçant au passage l'écran durant leur lecture.

UNROM[modifier | modifier le code]

Les premiers mappeurs NES sont composés de puces de la série 7400[3]. L'UNROM est apparu fin 1986. Il prend en charge une seule banque PRG fixe de 16 Ko, le reste du PRG étant modifiable[4]. En lieu et place d'une puce ROM dédiée pour contenir les données graphiques (appelée CHR par Nintendo), les jeux utilisant UNROM stockent les données graphiques sur la ROM du programme et les copient sur une RAM de la cartouche durant son fonctionnement[3].

MMC1[modifier | modifier le code]

Une cartouche Tetris montrant une puce MMC1B1

Le Multi Memory Controller 1 est le premier circuit intégré MMC personnalisé de Nintendo à permettre de sauvegarder et d'utiliser des scrolling multidirectionnel[5]. La puce possède au moins cinq versions différentes : MMC1A, MMC1B1, MMC1B2, MMC1B3 et MMC1C . Les différences entre les différentes versions sont minimes et tournent autour du comportement de protection de la mémoire des sauvegardes. La puce MMC1 permet de changer de banque de mémoire. La ROM du programme peut être sélectionnée en morceaux de 16 Ko ou 32 Ko, et la ROM des caractères peut être sélectionnée en morceaux de 4 Ko ou 8 Ko. Il se démarque du fait de son entrée qui est en série plutôt qu'en parallèle, donc 5 écritures séquentielles (avec décalage de bits) sont nécessaires pour envoyer une commande au circuit[6].

MMC2[modifier | modifier le code]

La MMC2 n'est utilisé que dans Mike Tyson's Punch-Out!! et la réédition qui a remplacé Mike Tyson (nommé simplement Punch-Out!! avec comme adversaire final un certain Mr.Dream) Une seule banque de 8 Ko de ROM de programme peut être sélectionnée (les 24 Ko restants étant verrouillés) et la ROM de caractères peut être sélectionnée dans deux paires de banques de 4 Ko, qui seraient automatiquement changées lorsque le matériel vidéo tente de charger des tuiles graphiques particulières depuis la mémoire, permettant ainsi plus de graphiques à utiliser sur l'écran sans que le jeu lui-même ait besoin de les changer manuellement[7].

MMC3[modifier | modifier le code]

La puce MMC3, soudée sur un PCB contenant Super Mario Bros. 3 et autres

La MMC3 a été introduit en 1988. Il ajoute une minuterie IRQ pour permettre le scrolling de l'écran partagé sans sacrifier le sprite 0, ainsi que deux banques ROM de programme sélectionnables de 8 Ko et deux banques ROM de caractères sélectionnables de 2 Ko + quatre de 1 Ko, permettant de rendre plus efficace les changement des données de sprite et de tuile. 8 Ko de RAM sont alloués aux sauvegardes[8].

MMC4[modifier | modifier le code]

Cette puce n'est utilisée que dans trois jeux, tous sortis uniquement pour la Famicom au Japon et développés par Intelligent Systems. Elle est presque identique dans son fonctionnement au MMC2, l'unique différence étant que le MMC4 commute la ROM du programme dans des banques de 16 Ko contrairement au 8 Ko de la MMC3 et prend en charge une SRAM alimentée par batterie pour permettre de sauvegarder[9].

MMC5[modifier | modifier le code]

La MMC5 est la MMC la plus avancée de Nintendo. C'était à l'origine aussi la plus cher. Seul Koei utilisait régulièrement cette puce. Elle est similaire à la VRC6 de Konami, mais la gestion des interruptions fonctionne différemment. La puce dispose d'un Ko de RAM supplémentaire, de deux canaux sonores à ondes carrées supplémentaires, d'un canal sonore PCM supplémentaire, de la prise en charge du scrolling vertical de l'écran partagé, de capacités graphiques améliorées (rendant 16 384 tuiles différentes disponibles par écran au lieu de seulement 256, et permettant à chaque écran individuel de 8x8). une tuile d'arrière-plan de pixels pour avoir sa propre attribution de couleur au lieu d'être limitée à un jeu de couleurs par groupe de tuiles 2x2), une commutation de ROM de programme et de banque de ROM de caractères hautement configurable ou encore d'un compteur IRQ basé sur une ligne de balayage. Le MMC5 prend en charge des ROM de 2 Mo au total, mais aucun jeu commercialisé ne dépasse 1 Mo[10].

MMC6[modifier | modifier le code]

Le MMC6 est très similaire au MMC3, avec 1 Ko supplémentaire de RAM pouvant être sauvegardé avec une batterie de secours[11].

Famicom Disk System[modifier | modifier le code]

L'ASIC du Famicom Disk System est une puce audio étendue, qui prend en charge un canal de synthèse de recherche par table d'ondes à cycle unique (6 bits × 64 pas) avec un modulateur de phase (PM) intégré pour une génération de son similaire à la synthèse par modulation de fréquence. Certaines conversions de jeux Disk System vers le support cartouche (le Disk System étant une exclusivité nippone, nombre d'exclusivité ont dû être retravaillées pour arriver en occident) ont des MMC pour remplacer le canal audio manquant.

AOROM[modifier | modifier le code]

L'A*ROM MMC, du nom des cartouches AMROM, ANROM et AOROM qui l'utilisent, a été développée par Chris Stamper, co-fondateur de Rare, et fabriquée par Nintendo. On la retrouve dans les jeux développés par l'entreprise anglaise pour différents éditeurs tels que Nintendo, Tradewest, GameTek, Acclaim et Milton Bradley. Il permet de commuter la ROM PRG en un seul morceau de 32 Ko et utilise la RAM CHR pour un total de ROM de 256 Ko. Contrairement à d'autres puces, il utilise la mise en miroir d'un seul écran[12].

Puces tierces[modifier | modifier le code]

Nintendo a gardé le contrôle sur le matériel commercialisé à l'échelle internationale et n'a pas autorisé des développeurs tiers à utiliser leurs propres PCB et autres mappeurs. Ce fut le cas jusqu'à la fin de vie commerciale de la NES où Nintendo a assoupli les restrictions. C'est pour cette raison que la plupart des mappeurs tiers ne seront trouvés que dans les cartouches Famicom ou sans licence.

VRC1[modifier | modifier le code]

  • Fabricant : Konami, Jaleco (SS8805)
  • Jeux : Exciting Boxing, Ganbare Goemon ! Karakuri Douchuu, Jajamaru Ninpouchou, King Kong 2 : Ikari no Megaton Punch, Moero !! , Junior Basket : Two on Two, Tetsuwan Atom[13].

VRC2[modifier | modifier le code]

Le VRC2 est une amélioration de la précédente, elle permet de commuter la ROM dans des banques de 8 Ko et la ROM de caractères dans des banques de 1 Ko. Cette MMC possède deux révisions connues : VRC2a et VRC2b[14].

VRC3[modifier | modifier le code]

Exclusivement utilisé dans la version japonaise de Salamander.

VRC4[modifier | modifier le code]

Le VRC4

La puce VRC4 est similaire à sa prédécesseure, à l'exception qu'elle permet une capacité CHR de 512 Ko, 2 modes bancaires ROM PRG de 8 Ko ainsi qu'une mise en miroir d'écran.

VRC5[modifier | modifier le code]

  • Fabricant : Konami
  • Jeux : Space School JP

Exclusif à l'adaptateur QTa des jeux éducatifs Space School de Konami[16].

VRC6[modifier | modifier le code]

Le VRC6.

La VRC6 (Virtual Rom Controller) est une puce MMC de Konami qui prend en charge la commutation de banque pour le code de programme ainsi que les graphiques, ainsi qu'un compteur IRQ basé sur le cycle du processeur, qui peut également servir de compteur de balayage. La puce prend en charge trois canaux sonores supplémentaires (deux ondes carrées de huit cycles de service chacune, configurables de manière à lire des échantillons PCM en utilisant un cycle de service de 100 %, et une seule onde en dents de scie ). Il est utilisé dans Akumajō Densetsu (le Castlevania III : Dracula's Curse japonais), tandis que la version occidentale utilise le MMC5 officiel. Étant donné que la Nintendo Entertainment System n'offre pas la possibilité aux cartouches d'ajouter des canaux sonores supplémentaires, la bande originale de la version japonaise a été retravaillée pour suivre ces spécifications; ainsi, la bande-son de la version occidentale est implémentée par les cinq canaux sonores intégrés à la NES occidentale[17]. C'est pour cette raison que les deux bandes sonores des deux versions sont très différentes dans leur sonorité malgré le fait que les musiques soient les mêmes[18],[19].

VRC7[modifier | modifier le code]

Le VRC7 avec un post-processeur pour la synthèse FM

Le VRC7 est une puce MMC très avancée de Konami, prenant en charge la commutation de banque et le comptage IRQ équivalents au VRC6, et contenant un dérivé YM2413 fournissant 6 canaux audio de synthèse FM. Cette capacité est utilisé uniquement dans le jeu Lagrange Point, exclusivement sorti au Japon . La version japonaise de Tiny Toon Adventures 2 utilise le VRC7 mais pas les capacités audio du VRC7[20]. Cependant, il présente un bruit de quantification, perceptible dans les notes les plus graves.

Namco 163[modifier | modifier le code]

Le 163 n'a été utilisé que dans des jeux exclusivement japonais. Ses capacités étaient un peu meilleures que celles du MMC3 de Nintendo. Une variante contenait du matériel sonore supplémentaire qui lit des échantillons d'ondes 4 bits. Il prend en charge 1 à 8 canaux sonores supplémentaires, cependant, un aliasing sonore apparaît lorsqu'un nombre important de canaux est activé en raison du multiplexage temporel de plus en plus audible.

FME-7[modifier | modifier le code]

Le FME-7 est un circuit de mappage mémoire développé par Sunsoft pour être utilisé dans les cartouches, peu importe la région. Il change la ROM du programme dans des banques de 8 Ko et change les banques de ROM de caractères de 1 Ko. Il contient également de quoi générer des signaux IRQ après un nombre spécifié de cycles d'horloge du processeur, obtenant ainsi des effets d'écran partagé en utilisant un minimum de puissance du processeur.

SUNSOFT-4[modifier | modifier le code]

SUNSOFT-4

SUNSOFT 5B[modifier | modifier le code]

Cette version du FME-7 contient une version du Yamaha YM2149 très utilisé à cette époque[réf. nécessaire].

MMC non-licenciées[modifier | modifier le code]

Certains indépendants (homebrew) et développeurs non licenciés ont créé des MMC personnalisées pour la NES, dont la plupart étendent simplement la mémoire disponible.

228[modifier | modifier le code]

228 est une simple MMC de changement de banque développée pour les jeux non-licenciés Action 52 et Cheetahmen II. Il n'a pas de bit de contrôle nommable. Dans le multicart Action 52, il contient également une petite zone de registre de 16 bits qui contient le menu lors du changement de jeu (le jeu étant composé de 52 jeux sur le papier).

GTROM[modifier | modifier le code]

  • Fabricant: Membler Industries

GTROM ou Cheapocadabra est une MMC auto-flashable développée en 2015 pour le marché des homebrews. La carte contient 512 Ko de ROM PRG, 16 Ko de ROM CHR ainsi que deux LED. Bien que le GTROM ne contienne pas de RAM PRG, il est possible de sauvegarder sa partie grâce à la ROM PRG pouvant être flashée directement par le jeu.

Voir également[modifier | modifier le code]

Références[modifier | modifier le code]

  1. Nintendo Power 1991, p. 28–31.
  2. (en) « Mappers - Nesdev wiki », sur wiki.nesdev.com
  3. a b c et d Nintendo Power 1991, p. 29.
  4. (en) « UxROM - Nesdev wiki », wiki.nesdev.com
  5. Nintendo Power 1991, p. 30.
  6. (en) « MMC1 - Nesdev wiki », wiki.nesdev.com
  7. (en) « MMC2 - Nesdev wiki », wiki.nesdev.com
  8. (en) « MMC3 - Nesdev wiki », wiki.nesdev.com
  9. (en) « MMC4 - Nesdev wiki », wiki.nesdev.com
  10. (en) « MMC5 - Nesdev wiki », wiki.nesdev.com
  11. (en) « MMC6 - Nesdev wiki », wiki.nesdev.com
  12. (en) « AxROM - Nesdev wiki », wiki.nesdev.com
  13. (en) « VRC1 - Nesdev wiki », wiki.nesdev.com (consulté le )
  14. (en) « VRC2 and VRC4 - Nesdev wiki », wiki.nesdev.com
  15. (en) « Mednafen Nintendo Entertainment System/Famicom Documentation », mednafen.github.io (consulté le )
  16. (en) « Collector unearths long-lost 8-bit Konami games, dumps them for emulation », Arstechnica, (consulté le )
  17. (en) D'Angelo, « Breaking the NES for Shovel Knight », Gamasutra,
  18. (en) Castlevania III Music (NES) - Beginning [Level 1], explod2A03 (, 1:51 minutes) Consulté le .
  19. (en) Akumajou Densetsu Music (FC VRC6) - Beginning, explod2A03 (, 1:51 minutes) Consulté le .
  20. (en) « VRC7 - Nesdev wiki », www.nesdev.org

Bibliographie[modifier | modifier le code]

  • (en) « Why Your Game Paks Never Forget », Nintendo Power, Nintendo, no 20,‎ , p. 28–31